package cn.bs.busuo.account.service;

import cn.bs.busuo.account.pojo.cachevo.CacheUserStandardVO;
import cn.bs.busuo.account.pojo.param.SetAdminParam;
import cn.bs.busuo.account.pojo.vo.*;
import cn.bs.busuo.account.pojo.param.UserAddNewParam;
import cn.bs.busuo.account.pojo.param.UserBasicUpdateParam;
import cn.bs.busuo.common.pojo.vo.PageData;

import java.util.List;

public interface IUserService {


    /**
     * 注册用户
     */
    void addNew(UserAddNewParam userAddNewParam);

//    /**
//     * 删除用户
//     */
//    void delete(Long id);

    /**
     * 修改简介
     */
    void updateInfo(Long userId, UserBasicUpdateParam userBasicUpdateParam);

    /**
     * 修改密码
     */
    void updatePassword(Long id, String newPassword);

    /**
     * 启用用户
     */
    void setEnable(Long userId);

    /**
     * 禁用用户
     */
    void setDisable(Long userId);

    /**
     * 根据ID查询用户
     */
    CacheUserStandardVO getStandardById(Long id);

    /**
     * 查询用户列表，将使用默认的每页记录数
     */
    PageData<CacheUserStandardVO> list(Integer pageNum);

    /**
     * 查询用户列表
     */
    PageData<CacheUserStandardVO> list(Integer pageNum, Integer pageSize);

    /**
     * 系统管理员设置管理员
     */
    void setAdmin(SetAdminParam setAdminParam);

    /**
     * 系统管理员删除管理员
     * @param setAdminParam
     */
    void deleteAdmin(SetAdminParam setAdminParam);

    /**
     * 系统管理员查看管理员列表
     * @return
     */
    List<AdminUserVO> adminList();
}
